Web browsers enable users to access a variety of websites and web applications on the Internet. Users often use web browsers (“browsers”) to open several sessions (“sessions,”) e.g. any combination of tabs, windows, frames, or panels of websites and web applications (“web apps”). For example, a user can open a social media website, an online retail store, and an instant messaging web application all on the same browser with different tabs. The user can also open several sessions for the same social media website, the online retail store, or the instant messaging web app on the same browser. A user can modify values in the different tabs, close tabs, and re-open tabs.
Although interacting with multiple sessions is convenient, multiple sessions can present problems with data synchronization, reporting to servers, prompting, etc. For example, a user who modifies a value in one session for a web app may find that the same value in another session for the web app is not modified. More specifically, if a user checks a box in a voting poll in a web app, the user may see that the same voting poll in another tab for the web app does not have a checked box. Also, a user may experience a session crashing. For example, a user may be using several tabs for an online retail store website or web app. The user may have selected to purchase one item from one tab and another item from another tab. If one tab crashes, the user will need to re-open a tab and find the item again. In addition, a provider of the web app can prevent future similar crashes if data about the state of the session can be reported, such as a location in a script that was executing, the value in of variables, thread interleavings, etc. As another example, a user engaged in messaging on a social media website or web app can have several windows opens. Each window can display a conversation with the user's contacts. However, if the user responds to a message on one window, the user may not see that response updated on another tab.
The techniques introduced here may be better understood by referring to the following Detailed Description in conjunction with the accompanying drawings, in which like reference numerals indicate identical or functionally similar elements.